Method for Providing an alert indication

ABSTRACT

A method for providing an alert indication, the method includes: allowing a first user to define an alert to be generated in response to an availability of a second user to participate in an instant messaging session; and sending to the second user an alert indication indicative of the alert.

FIELD OF THE INVENTION

The present invention relates to a method, a device and a computerprogram product for providing an alert indication and especially forproviding an alert indication in an instant messaging system.

BACKGROUND OF THE INVENTION

In most instant messaging systems, the availability of a particular userto participate in an instant messaging session (also referred to as“activity status” or “availability status”) is reflected to other usersof an instant messaging system by associating one of many variablestatus values with the user account. These status values assist otherusers in assessing whether it is possible for the other users toinitiate an instant messaging session with the given user. For example,an “offline” status shows that a given user is not logged onto thesystem, thereby informing other users that any attempt to initiate aninstant messaging session with the given user would be futile. An“online” status shows that a user is logged onto the system, and otherusers may assume that they are likely to get a response when theyinitiate an instant messaging session with the given user.

In some cases, an instant messaging system automatically assigns acertain status value to a user, and this automatic assignment of statuscan be very helpful in facilitating communication between users. Forexample, in most instant messaging applications, a user is given theability to maintain a buddy list. A buddy is another user of the instantmessaging application with which the user often exchanges instantmessages. The instant messaging system might automatically assign a useran “online” status value when the user logs onto the system. At the sametime, a buddy list typically actively displays the status of each buddy.By displaying the buddy list in an open window of a client device, auser has the ability to easily monitor the online status of the user'sbuddies; when the user notices that a particular buddy's status haschanged from “offline” to “online”, the user can quickly initiate aninstant messaging session with that particular buddy. In some instantmessaging systems, an automatic assignment of status is only performedwhen the user has not previously designated an alternative status; inmany cases, the user is able to override an automatically assignedstatus value by changing it to some other status value.

Although the indication of user status can be helpful in facilitatingcommunication between users, it can also be disruptive to a user'sproductivity by distracting a user from other activities. Hence, manyinstant messaging systems allow a user to manually select from severalpossible status values. In some cases, various privacy-related statusvalues can be selected that control whether other users are informed ofa given user's current status. These status values restrict the otherusers from knowing the true status of the given user, therebyprohibiting those users from beginning an instant message conversationwith the given user. For example, an “invisible” status hides a user'sstatus from other users.

In other cases, various privacy-related status values can be selectedthat inform other users of the likelihood that they will be able toinitiate an instant messaging session with a given user. For example, a“busy” status indicates that the given user is currently doing someother activity, while a “be right back” status would indicate to otherusers that the given user is temporarily away from his or her computer.As another example, a “do not disturb” status would indicate to otherusers that are interested in the given user's status that the given userdoes not want to be interrupted by instant messaging sessions. Duringany period in which the user has one of these status values, though, theuser is able to monitor the status of other users or to have the abilityto start instant messaging sessions with other users.

With reference now to the figures, FIG. 1A depicts a prior art networkof data processing systems that can support instant messaging.Distributed data processing system 100 contains network 101, which is amedium that may be used to provide communications links between variousdevices and computers connected together within distributed dataprocessing system 100. Network 101 may include permanent connections,such as wire or fiber optic cables, or temporary connections madethrough telephone or wireless communications. In the depicted example,server 102 and server 103 are connected to network 101 along withstorage unit 104. In addition, clients 105-107 also are connected tonetwork 101. Clients 105-107 and servers 102-103 may be represented by avariety of computing devices, such as mainframes, personal computers,personal digital assistants (PDAs), etc. Distributed data processingsystem 100 may include additional servers, clients, routers, otherdevices, and peer-to-peer architectures that are not shown.

Distributed data processing system 100 may include the Internet withnetwork 101 representing a worldwide collection of networks and gatewaysthat use various protocols to communicate with one another, such asLightweight Directory Access Protocol (LDAP), Transport ControlProtocol/Internet Protocol (TCP/IP), File Transfer Protocol (FTP),Hypertext Transport Protocol (HTTP), Wireless Application Protocol(WAP), Common Presence and Instant Messaging (CPIM) protocols, etc. Ofcourse, distributed data processing system 100 may also include a numberof different types of networks, such as, for example, an intranet, alocal area network (LAN), or a wide area network (WAN). For example,server 102 directly supports network 110, which incorporates wirelesscommunication links. Network-enabled phone 111 connects to network 110through wireless link 112, and PDA 113 connects to network 110 throughwireless link 114. Phone 111 and PDA 113 can also directly transfer databetween themselves across wireless link 115 using an appropriatetechnology, such as Bluetooth wireless technology, to create so-calledpersonal area networks (PAN) or personal ad-hoc networks. In a similarmanner, PDA 113 can transfer data to PDA 107 via wireless communicationlink 116.

With reference now to FIG. 1B, a diagram depicts a typical computingdevice, such as those shown in FIG. 1A, which can facilitate instantmessaging. Computing device 105 includes one or more central processingunits (CPUs) 122 connected to internal system bus 123, whichinterconnects random access memory (RAM) 124, read-only memory 126, andinput/output adapter 128, which supports various I/O devices, such asprinter 130, disk units 132, or other devices not shown, such as a audiooutput system, etc. System bus 123 also connects communication adapter134 that provides access to communication link 136. User interfaceadapter 148 connects various user devices, such as keyboard 140 andmouse 142, or other devices not shown, such as a touch screen, stylus,microphone, etc. Display adapter 144 connects system bus 123 to displaydevice 146.

Those of ordinary skill in the art will appreciate that the hardware inFIG. 2 may vary depending on the system implementation. For example, thesystem may have one or more processors, such as an Intel™ Pentium™ basedprocessor and a digital signal processor (DSP), and one or more types ofvolatile and non-volatile memory.

A typical operating system may be used to control program executionwithin each data processing system. For example, one device may run aUnix operating system, while another device contains a simple Javaruntime environment. A representative computer platform may include abrowser, which is a well known software application for accessinghypertext documents in a variety of formats, such as graphic files, wordprocessing files, Extensible Markup Language (XML), Hypertext MarkupLanguage (HTML), Handheld Device Markup Language (HDML), Wireless MarkupLanguage (WML), and various other formats and types of files.

With reference now to FIG. 2, a block diagram depicts a typical instantmessaging system. Typical instant messaging systems have characteristicsof a client/server organization and a peer-to-peer organization. Instantmessaging (IM) server 200 authenticates a user of an instant messagingapplication, such as instant message application instances 202 and 204.IM server 200 is conveniently connected to computing devices that hostthe instant messaging application over a network. After authenticating auser, the instant messaging server will perform certain operations onbehalf of the instant messaging application. In this manner, an instanceof an instant messaging application operates as an instant messagingclient. The instant messaging server maintains some type of session foreach active instant messaging client, which eventually logs out from thesession or allows the session to undergo a timeout termination.

However, after being initialized with certain information, depending onthe communication protocol, active instant messaging clients cancommunicate directly with each other by transferring instant messagesdirectly to another active instant messaging client without assistancefrom the instant messaging server. In this manner, the separateinstances of the instant messaging application act as peer nodes in apeer-to-peer network. Many instant messaging systems employ proprietaryprotocols, although standard instant messaging protocols have beenproposed, e.g., Crocker et al., “Common Presence and Instant Messaging(CPIM)”, Internet Draft of the Internet Engineering Task Force (IETF),draft-ietf-impp-cpim-03.txt, August 2002.

For example, assuming that a user has previously registered for anaccount with the instant messaging server, a user logs into the instantmessaging server through an instant messaging application on a clientdevice. The instant messaging server stores the connection informationfor the client device, such as the IP address of the client device andthe port number that is assigned to the instant messaging application atthe client device.

During the login operation, the instant messaging server also receivesand stores an IM contact list, often referred to as a buddy list, forthe user along with the user's connection information and other sessioninformation. The server performs an initial check to obtain the statusof the users in the buddy list and notifies the user's active instantmessaging client of the status of those users, e.g., whether those usersare online and available for communication through the instant messagingsystem. The server monitors these buddy lists such that when a user logsinto the instant messaging system, the server notifies anyone who hasthe recently logged-in user within a buddy list that the recentlylogged-in user is now online or is associated with some other type ofstatus.

Assuming that a buddy has not chosen to remain cloaked within an“invisible” status, when the instant messaging server notifies a firstinstant messaging client that a second instant messaging client isonline, the instant messaging server sends the connection informationfor the second instant messaging client to the first instant messagingclient and perhaps vice versa depending upon the online status of theuser. Because each active instant messaging client has connectioninformation for other active instant messaging clients in the instantmessaging system, these instant messaging clients can transfer instantmessages between themselves without interaction with the instantmessaging server, i.e. in a peer-to-peer manner.

A certain user can define one or more alerts to be generated in responseto an availability of another user to participate in an instantmessaging session. Thus, if the other user becomes available, becomesunavailable, goes offline, and the like, the certain user can receive analert.

FIG. 3 illustrates a typical prior art graphical user interface window201 for defining an alert. Window 201 is presented on a display deviceconnected to a data processing system on which an instance of an instantmessaging application is executing for a user. In a typical fashion foran instant messaging application, window 201 contains several userinterface controls for defining the alert. Drop-down menu 203 containsthe event (related to the availability of the other user) that shalltrigger the alert. Area 205 (which is currently empty) should listpreviously defined alerts. Typically, each alert is defined by the nameof the event that should trigger the alert, recurrence information andoptional notes.

Next button 207 and back button 209 are used for scrolling betweendifferent windows of the instant messaging application GUI windows.Cancel button 210 is used to cancel a definition of an alert.

The other user is not aware of the alert that is defined by the certainuser. This asymmetry can lead to unpleasant situations.

There is a growing need to provide a more symmetrical instant messagingsystem.

SUMMARY OF THE PRESENT INVENTION

A method for providing an alert indication, the method includes:allowing a first user to define an alert to be generated in response toan availability of a second user to participate in an instant messagingsession; and sending to the second user an alert indication indicativeof the alert.

Conveniently, the method includes allowing the first user to prevent thesending of the alert indication to the second user.

Conveniently, the method includes allowing the first user to prevent ageneration of the alert indication.

Conveniently, the method includes sending to the first user an alertawareness indication indicative of an awareness of the second user tothe alert.

Conveniently, the method includes allowing the second user to preventthe first user from setting up the alert.

Conveniently, the method includes allowing the second user to preventpredefined amount of attempts of the first user to set up the alert.

Conveniently, the allowing includes allowing the first user to definedifferent alerts to be generated in response to different availabilitylevels of the second user.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be understood and appreciated more fully fromthe following detailed description taken in conjunction with thedrawings in which:

FIG. 1A depicts a prior art network of data processing systems that cansupport instant messaging;

FIG. 1B is a diagram depicts a prior art computing device;

FIG. 2 illustrates a prior art instant messaging system;

FIG. 3 illustrates a typical prior art graphical user interface windowfor defining an alert;

FIG. 4 is a flow chart of a method for providing an alert indicationaccording to an embodiment of the invention;

FIG. 5 illustrates a graphical user interface window for defining analert and selectively enabling a provision of an alert notificationaccording to an embodiment of the invention;

FIG. 6 illustrates a graphical user interface window for enabling atransmission of an alert awareness indication according to an embodimentof the invention;

FIG. 7 illustrates a flow chart of a method for providing an alertindication according to an embodiment of the invention;

FIG. 8 illustrates a graphical user interface window for preventing asecond user from defining an alert according to an embodiment of theinvention; and

FIG. 9 is a flow chart of a method for providing a service over anetwork according to an embodiment of the invention.

DETAILED DESCRIPTION OF THE DRAWINGS

The present invention provides an observer feature. A first user(trapper) can define an alert to be generated in response to anavailability of a second user (trappee) to participate in an instantmessaging session. The second user receives an alert indicationindicative of the alert. Thus, the second user is provided with anobserver capability.

The present invention may be implemented on a variety of hardware andsoftware platforms. It may be implemented on the platforms described inFIGS. 1, 2 and 2, but this is not necessarily so. More specifically,though, the present invention is directed to operating an instantmessaging system, as described in more detail below with respect to theremaining figures. It should be noted that the examples that aredescribed hereinbelow often refer to users and systems. It should beunderstood that a user interacts with a system such that the systemperforms actions on behalf of a user, and the terms “user” and “system”can sometimes be interchanged in a well-known manner to facilitate thedescription of operations at a data processing system.

FIG. 4 is a flow chart of method 300 for providing an alert indicationaccording to an embodiment of the invention.

Method 300 starts by stage 310 of allowing a first user to define analert to be generated in response to an availability of a second user toparticipate in an instant messaging session. Stage 310 may includereceiving a request from the first user to define the alert. The alertdetails and especially the identity of the second user and the event(related to the availability of the second user) that should trigger thealert can be received by using a GUI.

Conveniently, stage 310 includes allowing the first user to definedifferent alerts to be generated in response to different availabilitylevels of the second user.

Conveniently, stage 310 also involves allowing a user to enable ageneration of an alert notification and enable sending the alertnotification to the second user. The alert notification is indicative ofthe alert that is defined by the first user.

According to an embodiment of the invention the first user can select toprevent the generation of the alert indication, and additionally oralternatively, the sending of the alert notification to the second user.Accordingly, stage 310 may include allowing the first user to preventthe sending of the alert indication to the second user. Additionally oralternatively, stage 310 may includes allowing the first user to preventa generation of the alert indication.

FIG. 5 illustrates graphical user interface window 220 for defining analert and selectively enabling a provision of an alert notificationaccording to an embodiment of the invention. Window 220 differs fromprior art window 201 by including menu 222 that enables the first userto select between sending to the second user an alert indication(represented by “allow alert notification” 230) and between not sending(or not generating such an alert indication (represented by “disablealert notification” 232).

According to an embodiment of the invention the latter option is thedefault—for providing backward compatibility.

According to another embodiment of the invention the default (oralternatively—the only option presented to the first user) is togenerate and send to the second user the alert indication.

Stage 310 is followed by stage 320 of determining whether to send analert notification to the second user. If the sending (or generating) ofthe alert notification is not prevented during stage 310 then stage 320is followed by stage 330 of sending to the second user an alertindication indicative of the alert.

According to an embodiment of the invention stage 330 is followed bystage 340 of allowing the first user to send an alert awarenessindication indicative of an awareness of the second user to the alert.

FIG. 6 illustrates graphical user interface window 240 for enabling atransmission of an alert awareness indication according to an embodimentof the invention. Window 240 illustrates two menus 250 and 260.

The user selected “log in” menu item 252 (of menu 250) that allows thesecond user to log in. This selection also opened menu 260 that allowsthe second user to send an alert acknowledgement, by selecting “sendalert awareness indication” menu item 262. It is noted that other menuitems of menu 260 provide an indication about the availability of thesecond user to participate in an instant messaging session (see: “I amavailable” menu item 261, “I am away” menu item 263, “In a meeting” menuitem 265 and “do not disturb” menu item 267).

Assuming that the second user selected to send such an alert awarenessindication then stage 340 is followed by stage 350 of sending an alertawareness indication to the first user.

According to various embodiments of the invention the second user canprevent the first user from defining an alert to be generated inresponse to an availability of the second user to participate in aninstant messaging session. The second user can temporarily prevent thefirst user from defining such an alert, can permanently prevent thefirst user from defining such an alert, can prevent only certain typesof alerts (triggered by predefined events), and the like.

FIG. 7 illustrates a flow chart of method 302 for providing an alertindication according to an embodiment of the invention.

Method 302 differs from method 300 by including stages 306 and 308 thatprecede stage 310.

Stage 306 includes allowing the second user to prevent the first userfrom setting up the alert. It is noted that stage 306 can allowingtemporary prevention, permanent preventions, and the like. A temporaryprevention can be defined by a time period, by number of alertdefinitions attempts or a combination thereof.

FIG. 8 illustrates graphical user interface window 270 for preventing asecond user from defining an alert according to an embodiment of theinvention.

Window 270 illustrates menus 280 and 290.

It is assumed that the second user selects “log in and prevent alerts”menu item 282 (of menu 280) that allows the second user to log in anddefine which users (such as the first user) should be prevented fromdefining alerts related to the second user.

This selection also opened menu 290 that allows the second user to add auser (such as the first user) to a permanently prevented users list(also referred to as a blocked users list). The addition can be made byselecting “block mode” menu item 292 (of menu 290). It is noted that theblocked users list can be amended in other manners.

Menu 290 also allows the second user to add or remove a user (such asthe first user) to a temporarily prevented users list (also referred toas a denied users list). The addition can be made by selecting “denymode” menu item 294 (of menu 290). It is noted that the denied userslist can be amended in other manners.

It is noted that the denied user list and the blocked user list can bedisplayed to the user in various manners.

Stage 306 is followed by stage 308 of checking whether the first usercan define an alert. The checking may involve scanning second userdatabases that include users that are prevented from defining an alert.If the answer is positive then stage 308 is followed by stage 310, elsethe process ends.

FIG. 9 is a flow chart of method 400 for providing a service over anetwork according to an embodiment of the invention.

Method 400 starts by stage 410 of receiving, from a first user and overa network, a definition of an alert to be generated in response to anavailability of a second user to participate in an instant messagingsession.

Conveniently, stage 410 includes receiving from the first user differentdefinitions of alerts to be generated in response to differentavailability levels of the second user.

Conveniently, stage 410 also involves receiving, from the first user andover the network, a request to generate an alert notification and toenable sending over the network the alert notification to the seconduser. The alert notification is indicative of the alert that is definedby the first user.

Referring to the example set fourth in FIG. 1A, the network can benetwork 101, network 110 or a combination thereof.

According to an embodiment of the invention the first user can select toprevent the generation of the alert indication, and additionally oralternatively, the sending over the network of the alert notification tothe second user. Accordingly, stage 410 may include receiving a requestover the network and from the first user to prevent the sending of thealert indication to the second user. Additionally or alternatively,stage 310 may include receiving a request over the network and from thefirst user to prevent the generation of the alert indication to thesecond user

Stage 410 is followed by stage 420 of determining whether to send overthe network an alert notification to the second user. If the sending (orgenerating) of the alert notification is not prevented during stage 410then stage 420 is followed by stage 430 of sending over the network tothe second user an alert indication indicative of the alert.

According to an embodiment of the invention stage 430 is followed bystage 440 of allowing the first user to send over the network an alertawareness indication indicative of an awareness of the second user tothe alert.

Assuming that the second user selected to send such an alert awarenessindication then stage 440 is followed by stage 450 of sending over thenetwork an alert awareness indication to the first user.

According to various embodiments of the invention the second user canprevent the first user from defining an alert to be generated inresponse to an availability of the second user to participate in aninstant messaging session. The second user can temporarily prevent thefirst user from defining such an alert, can permanently prevent thefirst user from defining such an alert, can prevent only certain typesof alerts (triggered by predefined events), and the like.

Furthermore, the invention can take the form of a computer programproduct accessible from a computer-usable or computer-readable mediumproviding program code for use by or in connection with a computer orany instruction execution system. For the purposes of this description,a computer-usable or computer readable medium can be any apparatus thatcan contain, store, communicate, propagate, or transport the program foruse by or in connection with the instruction execution system,apparatus, or device.

The medium can be an electronic, magnetic, optical, electromagnetic,infrared, or semiconductor system (or apparatus or device) or apropagation medium. Examples of a computer-readable medium include asemiconductor or solid-state memory, magnetic tape, a removable computerdiskette, a random access memory (RAM), a read-only memory (ROM), arigid magnetic disk and an optical disk. Current examples of opticaldisks include compact disk-read only memory (CD-ROM), compactdisk-read/write (CD-R/W) and DVD.

A data processing system suitable for storing and/or executing programcode will include at least one processor coupled directly or indirectlyto memory elements through a system bus. The memory elements can includelocal memory employed during actual execution of the program code, bulkstorage, and cache memories which provide temporary storage of at leastsome program code in order to reduce the number of times code must beretrieved from bulk storage during execution.

Input/output or I/O devices (including but not limited to keyboards,displays, pointing devices, etc.) can be coupled to the system eitherdirectly or through intervening I/O controllers.

Network adapters may also be coupled to the system to enable the dataprocessing system to become coupled to other data processing systems orremote printers or storage devices through intervening private or publicnetworks. Modems, cable modem and Ethernet cards are just a few of thecurrently available types of network adapters.

Conveniently, a computer program product is provided. The computerprogram product includes a computer usable medium that includes acomputer readable program, wherein the computer readable program whenexecuted on a computer causes the computer to: receive from a first usera definition of an alert to be generated in response to an availabilityof a second user to participate in an instant messaging session; andsend to the second user an alert indication indicative of the alert.

The computer readable program can cause the computer to execute one ormore states of any method out of methods 300, 302 and 400.

Variations, modifications, and other implementations of what isdescribed herein will occur to those of ordinary skill in the artwithout departing from the spirit and the scope of the invention asclaimed.

Accordingly, the invention is to be defined not by the precedingillustrative description but instead by the spirit and scope of thefollowing claims.

1-22. (canceled)
 23. A method for providing a service over a network,the method comprising: receiving, from a first user and over a network,a definition of an alert to be generated in response to an availabilityof a second user to participate in an instant messaging session; andsending, over the network, to the second user an alert indicationindicative of the alert.
 24. The method according to claim 23 furthercomprising allowing the first user to prevent the sending of the alertindication to the second user.
 25. The method according to claim 23further comprising allowing the first user to prevent a generation ofthe alert indication.
 26. The method according to claim 23 furthercomprising sending, over the network, to the first user an alertawareness indication indicative of an awareness of the second user tothe alert.
 27. The method according to claim 23 further comprisingallowing the second user to prevent the first user from setting up thealert.
 28. The method according to claim 23 further comprising allowingthe second user to prevent predefined amount of attempts of the firstuser to set up the alert.
 29. The method according to claim 23 whereinthe allowing comprises allowing the first user to define differentalerts to be generated in response to different availability levels ofthe second user.